package com.rockcent.model;


import android.text.TextUtils;

import com.rockcent.model.constant.BizStateType;
import com.rockcent.model.constant.BooleanType;
import com.rockcent.model.constant.DealType;
import com.rockcent.model.constant.ItemCouponType;
import com.rockcent.model.constant.LimitType;
import com.rockcent.model.constant.ModelType;
import com.rockcent.model.constant.StateType;
import com.rockcent.model.constant.VerificationType;

import java.io.Serializable;

/**
 * @author 黄东凯
 * @version 1.0 创建时间 15-1-26
 */
public class CouponModel implements Serializable {

    private static final long serialVersionUID = 4036480255550161153L;

    private int id;//票券ID
    private int businessId;//商家ID
    private int agencyId;//代理ID
    private String name;//票券名称
    private String introduce;//说明
    private long useStartTime;//有效期(开始)
    private long useEndTime;//有效期(结束)
    private String picUrl;//图片,以;分隔
    private String explanation;//说明
    private ModelType modelType;//券类型


    //    private String state;//C端（C01：出售中；C02：已下架；C03：已删除）B端（票券状态。0：可编辑；1：已审核；2：发行中；3：已停用；4：待审核；5：审核不通过；6：售完)
//    private String type;//C端(0：商品；1：服务) B端(0：现金券；1：优惠券)
    private StateType state;//状态,0待审核,1审核通过,2发行中,3已停用,4审核未通过,5已过期
    private DealType isDeal;//是否可交易,0 不可交易, 1 可交易
    private String introduceHTML;//HTML介绍
    private String issueCount;//发行数量,现金券自动计算,优惠券要填写
    private double totalAmount;//总价值
    private double faceValue;//面值
    private double estimateAmount;//售卖金额
    private double discount;//折扣(0~100)
    private double debitAmount;//抵用金额
    private double miniAmount;//最小使用金额
    private int saleCount;//卖出数量
    private int lockedCount;//锁定数量
    private String logoUrl;//LOGO图片,以;分隔
    private BizStateType bizState;//消费券下架与上架 .0_下架，1_上架,2_草稿，3_待设置，4待付款，5付款中
    private LimitType isLimit;//是否限购, 0 不限购, 1 限购
    private int limitNumber;//限购数量
    private int commentCount;//评论数量
    private double commentAvg;//评论平均分
    private BooleanType isComment;//当前账户是否已评论,0否,1是
    private int favoriteCount;//收藏数量
    private BooleanType isFavorite;//当前账户是否已收藏,0否,1是
    private int review1Count;//赞数量
    private BooleanType isReview1;//当前账户是否已赞,0否,1是
    private int review2Count;//踩数量
    private BooleanType isReview2;//当前账户是否已踩,0否,1是
    private BooleanType isBuyed;//当前账户是否已买过,0否,1是
    private int buyCount;//当前用户购买数量
    private int canBuyCount;//当前用户可购买数量
    private BooleanType isUsed;//当前账户是否已使用过,0否,1是
    private int count;//对于“我的券包、我的购物车”功能，此字段表示购买的数量
    private long useTime;//“已使用”的券会存放使用时间
    private BooleanType isOverdueRefund;//是否支持过期退款。0：否；1：是
    private int storeCount;//店铺数量
    private int verificationId;//验证表id
//    private ModelType type;//
    private boolean checked;//是否勾选中
    private BooleanType isPublic;//0代表公有渠道，1代表私有渠道
    private String isDelivery;
    private VerificationType verificationDeliveryState;//实物券物流状态，未发货(0)，已发货(1)，确认收货(2)
    private int industryId;
    private ItemCouponType itemType;


    public StateType getState() {
        return state;
    }

    public void setState(StateType state) {
        this.state = state;
    }
    public ItemCouponType getItemType() {
        return itemType;
    }

    public void setItemType(ItemCouponType itemType) {
        this.itemType = itemType;
    }

    public double getDistributionCommission() {
        return distributionCommission;
    }

    public void setDistributionCommission(double distributionCommission) {
        this.distributionCommission = distributionCommission;
    }

    private double distributionCommission;


    public VerificationType getVerificationDeliveryState() {
        return verificationDeliveryState;
    }

    public void setVerificationDeliveryState(VerificationType verificationDeliveryState) {
        this.verificationDeliveryState = verificationDeliveryState;
    }

    public String getIsDelivery() {
        return isDelivery;
    }

    public void setIsDelivery(String isDelivery) {
        if (TextUtils.isEmpty(isDelivery)) {
            isDelivery = "0";
        }
        this.isDelivery = isDelivery;
    }

    public BooleanType getIsPublic() {
        return isPublic;
    }

    public void setIsPublic(BooleanType isPublic) {
        this.isPublic = isPublic;
    }

    public boolean isChecked() {
        return checked;
    }

    public void setChecked(boolean checked) {
        this.checked = checked;
    }

/*    public ModelType getType() {
        return type;
    }

    public void setType(ModelType type) {
        this.type = type;
    }*/

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getBusinessId() {
        return businessId;
    }

    public void setBusinessId(int businessId) {
        this.businessId = businessId;
    }

    public int getAgencyId() {
        return agencyId;
    }

    public void setAgencyId(int agencyId) {
        this.agencyId = agencyId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIntroduce() {
        return introduce;
    }

    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }

    public long getUseStartTime() {
        return useStartTime;
    }

    public void setUseStartTime(long useStartTime) {
        this.useStartTime = useStartTime;
    }

    public long getUseEndTime() {
        return useEndTime;
    }

    public void setUseEndTime(long useEndTime) {
        this.useEndTime = useEndTime;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public String getExplanation() {
        return explanation;
    }

    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }

    public ModelType getModelType() {
        return modelType;
    }

    public void setModelType(ModelType modelType) {
        this.modelType = modelType;
    }

/*    public StateType getState() {
        return state;
    }

    public void setState(StateType state) {
        this.state = state;
    }*/

    public DealType getIsDeal() {
        return isDeal;
    }

    public void setIsDeal(DealType isDeal) {
        this.isDeal = isDeal;
    }

    public String getIntroduceHTML() {
        return introduceHTML;
    }

    public void setIntroduceHTML(String introduceHTML) {
        this.introduceHTML = introduceHTML;
    }

    public String getIssueCount() {
        return issueCount;
    }

    public void setIssueCount(String issueCount) {
        this.issueCount = issueCount;
    }

    public double getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public double getFaceValue() {
        return faceValue;
    }

    public void setFaceValue(double faceValue) {
        this.faceValue = faceValue;
    }

    public double getEstimateAmount() {
        return estimateAmount;
    }

    public void setEstimateAmount(double estimateAmount) {
        this.estimateAmount = estimateAmount;
    }

    public double getDiscount() {
        return discount;
    }

    public void setDiscount(double discount) {
        this.discount = discount;
    }

    public double getDebitAmount() {
        return debitAmount;
    }

    public void setDebitAmount(double debitAmount) {
        this.debitAmount = debitAmount;
    }

    public double getMiniAmount() {
        return miniAmount;
    }

    public void setMiniAmount(double miniAmount) {
        this.miniAmount = miniAmount;
    }

    public int getSaleCount() {
        return saleCount;
    }

    public void setSaleCount(int saleCount) {
        this.saleCount = saleCount;
    }

    public int getLockedCount() {
        return lockedCount;
    }

    public void setLockedCount(int lockedCount) {
        this.lockedCount = lockedCount;
    }

    public String getLogoUrl() {
        return logoUrl;
    }

    public void setLogoUrl(String logoUrl) {
        this.logoUrl = logoUrl;
    }

    public BizStateType getBizState() {
        return bizState;
    }

    public void setBizState(BizStateType bizState) {
        this.bizState = bizState;
    }

    public LimitType getIsLimit() {
        return isLimit;
    }

    public void setIsLimit(LimitType isLimit) {
        this.isLimit = isLimit;
    }

    public int getLimitNumber() {
        return limitNumber;
    }

    public void setLimitNumber(int limitNumber) {
        this.limitNumber = limitNumber;
    }

    public int getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(int commentCount) {
        this.commentCount = commentCount;
    }

    public double getCommentAvg() {
        return commentAvg;
    }

    public void setCommentAvg(double commentAvg) {
        this.commentAvg = commentAvg;
    }

    public BooleanType getIsComment() {
        return isComment;
    }

    public void setIsComment(BooleanType isComment) {
        this.isComment = isComment;
    }

    public int getFavoriteCount() {
        return favoriteCount;
    }

    public void setFavoriteCount(int favoriteCount) {
        this.favoriteCount = favoriteCount;
    }

    public BooleanType getIsFavorite() {
        return isFavorite;
    }

    public void setIsFavorite(BooleanType isFavorite) {
        this.isFavorite = isFavorite;
    }

    public int getReview1Count() {
        return review1Count;
    }

    public void setReview1Count(int review1Count) {
        this.review1Count = review1Count;
    }

    public BooleanType getIsReview1() {
        return isReview1;
    }

    public void setIsReview1(BooleanType isReview1) {
        this.isReview1 = isReview1;
    }

    public int getReview2Count() {
        return review2Count;
    }

    public void setReview2Count(int review2Count) {
        this.review2Count = review2Count;
    }

    public BooleanType getIsReview2() {
        return isReview2;
    }

    public void setIsReview2(BooleanType isReview2) {
        this.isReview2 = isReview2;
    }

    public BooleanType getIsBuyed() {
        return isBuyed;
    }

    public void setIsBuyed(BooleanType isBuyed) {
        this.isBuyed = isBuyed;
    }

    public int getBuyCount() {
        return buyCount;
    }

    public void setBuyCount(int buyCount) {
        this.buyCount = buyCount;
    }

    public int getCanBuyCount() {
        return canBuyCount;
    }

    public void setCanBuyCount(int canBuyCount) {
        this.canBuyCount = canBuyCount;
    }

    public BooleanType getIsUsed() {
        return isUsed;
    }

    public void setIsUsed(BooleanType isUsed) {
        this.isUsed = isUsed;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public long getUseTime() {
        return useTime;
    }

    public void setUseTime(long useTime) {
        this.useTime = useTime;
    }

    public BooleanType getIsOverdueRefund() {
        return isOverdueRefund;
    }

    public void setIsOverdueRefund(BooleanType isOverdueRefund) {
        this.isOverdueRefund = isOverdueRefund;
    }

    public int getStoreCount() {
        return storeCount;
    }

    public void setStoreCount(int storeCount) {
        this.storeCount = storeCount;
    }

    public int getVerificationId() {
        return verificationId;
    }

    public void setVerificationId(int verificationId) {
        this.verificationId = verificationId;
    }
    public int getIndustryId() {
        return industryId;
    }

    public void setIndustryId(int industryId) {
        this.industryId = industryId;
    }
}
